﻿#ifndef MAINWINDOW_H
#define MAINWINDOW_H

#include "flowchartwidget.h"
#include "ShapeLibraryPanel.h"
#include "propertyeditorwidget.h"
#include <QMainWindow>
#include <QTabBar>
#include <QStackedWidget>
#include <QToolBar>
#include <QMenuBar>
#include <QAction>
#include <QStatusBar>
#include <QGraphicsView>
#include <QDockWidget>
#include <QComboBox>
#include <QColorDialog>
#include <QActionGroup>
#include <QCheckBox>



class MainWindow : public QMainWindow
{
    Q_OBJECT

public:
    MainWindow(QWidget* parent = nullptr);
    ~MainWindow();
    

private:
    // 核心组件
    FlowChartWidget* m_flowChartWidget;  // 流程图绘制区域
    ShapeLibraryPanel* m_shapeLibraryPanel;   // 左侧图形库
    PropertyEditorWidget* m_propertyEditorWidget;
    QTabBar* m_functionTabBar;
    QStackedWidget* m_functionToolStack;
    QToolButton* m_toggleShapeLibBtn;


    // 初始化函数
    void initCentralWidget();
    void initFunctionToolArea();
    void initShapeLibraryDock();
    void initPropertyDock();
    void initStatusBar();

    // 功能区页面
    QWidget* createFileToolPage();//文件功能区
    QWidget* createHomeToolPage();    // "开始"功能区
    QWidget* createArrangeToolPage();//排列功能区
    QWidget* createPageLayoutPage();  // "页面布局"功能区
    QIcon createColorIcon(const QColor& color);//// 辅助函数：创建颜色图标
    QMenu* createBasicColorMenu(QWidget* parent = nullptr);
    
    //文件操作
    void onSaveActionTriggered();
    void onOpenActionTriggered();
    void onNewActionTriggered();

    ShapeManager* m_model;
    int m_autoSaveCounter = 0;
};

#endif // MAINWINDOW_H
